package com.nkzy.controller;

import cn.hutool.core.bean.BeanUtil;
import com.nkzy.domain.dto.UserFormDTO;
import com.nkzy.domain.pojo.User;
import com.nkzy.domain.vo.UserVo;
import com.nkzy.service.UserService;
import io.swagger.v3.oas.annotations.Operation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

@RequestMapping("/users")//RestFul风格要求请示路径用表名+s
@RestController
public class UserController {
    //Controller是前后端进行数据交互的桥梁，对于后端开发人员来说，给前段开发人员提供接口说明文档
    @Autowired
    private UserService userService;
    //保存数据
    @PostMapping
    @Operation(summary = "保存用户信息")
    public void saveUser(@RequestBody UserFormDTO userFormDTO){
        //1.把DTO转换为POJO对象
        User user=BeanUtil.copyProperties(userFormDTO,User.class);
        //2.调用业务层的保存的方法，完成增加用户信息
        userService.save(user);

    }
    //查询一个用户
    @GetMapping("/{id}")
    @Operation(summary = "查询一个用户")
    public UserVo getUser(@PathVariable("id") Long id){
        //调用业务层的方法，完成查询一个用户
        User user=userService.getById(id);
        UserVo userVo=BeanUtil.copyProperties(user,UserVo.class);
        return userVo;
    }
    //删除一个用户
    @DeleteMapping("/{id}")
    @Operation(summary = "删除一个用户")
    public void deleteUser(@PathVariable("id") Long id){
        userService.removeById(id);

    }
    //根据id的集合查询多个用户
    //查询所有用户
    //修改一个用户
}





























